# coding: utf-8

from graph import Hierarchy

# ----------------------------------------------------------------------------------------------
# -------------------------------  CROSSING REDUCTION  -----------------------------------------
# ----------------------------------------------------------------------------------------------

"""
Interface for a crossing reduction algorithm.
It reorders each layer of the hierarchy to avoid crossings.
"""


class CrossingReduction:
    """
    * Executes the algorithm.
    * It should leave h in a consistent state - ranking, layers and pos all agree with each other.
    """

    def run(self, h: Hierarchy) -> None:
        pass

    def __del__(self):
        pass
